The present invention relates to session management of Internet communications.
The Internet is a worldwide computer network consisting of many smaller networks. The computers on these networks, known as xe2x80x9chostsxe2x80x9d, communicate using a common protocol, for example, the Transmission Control Protocol/Internet Protocol (TCP/IP) networking protocol. Each host is identified by its Internet Protocol (IP) address.
The World Wide Web (the xe2x80x9cWebxe2x80x9d) is a system of interconnected xe2x80x9cpagesxe2x80x9d, or documents, that are provided by software known as xe2x80x9cserversxe2x80x9d running on hosts. The Web pages are written in hypertext markup language (HTML) and are interconnected by hyperlinks. The request for and transfer of Web pages is made possible using the hypertext transfer protocol (HTTP), which runs over TCP/IP. The Web pages are provided to xe2x80x9cclientxe2x80x9d computers that request them from the Web server. The HTTP request is sent by software known as a Web xe2x80x9cbrowserxe2x80x9d running on the client, and the browser then displays the Web page for the user who requested it.
A typical HTTP request includes the following information: the Uniform Resource Locator (URL) of the Web page to be accessed, a xe2x80x9cUser-Agentxe2x80x9d header and might include also xe2x80x9cAcceptxe2x80x9d and/or xe2x80x9cAccept-Languagexe2x80x9d headers. The User-Agent header indicates the browser sending the request and the operating system of the computer where the browser is running in some browsers, the language of the operating system is also sent in the User-Agent header, while in others it is sent in the Accept-Language header. The Accept header contains the MIME types supported by the browser. The IP address of the client is part of the underlying IP packet. If the client is accessing the Internet through a proxy server, then it is the proxy""s IP address which is sent as part of the underlying IP packet. Some proxies report the client""s IP address in an additional HTTP header dedicated for that purpose, for example the xe2x80x9cForwarded-Forxe2x80x9d header or xe2x80x9cClient-IPxe2x80x9d header.
Many applications running on HTTP servers need to maintain state, meaning that they need to save information about the client from one request to another. The server maintains a session for each client that makes requests, so that the server will send the client Web pages based upon the information in previous requests from the same client. One example is a newspaper Web site that charges users for each article that the user reads. The newspaper application needs to remember which articles the user has previously read in order not to charge the user more than once for a particular article. Another example is a Web shopping site having a shopping cart application for storing the goods that the user wishes to buy. The shopping cart application needs to ensure that, as the user browses through the site""s Web pages, the shopping cart retains the goods the user has placed there.
It is well known that HTTP is a stateless protocol, which means that an HTTP server handles each request from a client independently from all other requests from the same client. Therefore, a number to techniques have been developed in order to add state to the HTTP protocol. Examples are xe2x80x9ccookiesxe2x80x9d, altering the URL to include encoded session data. and using the Basic Authentication mechanism described in the Request for Comments (RFC) 1945, chapter 11.1, which can be found on the Internet at info.Internet.isi.edu/in-notes/rfc/files/rfc1945.txt.
A cookie is a message given to a browser by a Web set. The browser stores tho cookie and then sends it back to the server each time the browser requests a page from the server. U.S. Pat. No. 5,774,670 to Montulli describes a method and apparatus for transferring cookies between an HTTP server and a client. Unfortunately, some browsers do not support the use or cookies. Other browsers can be configured by the user not to accept cookies. Several users may use the same browser, for example parents who access the Internet Via a work Internet Service Provider (ISP) account while the children access the Internet via a family ISP account, and some applications might want to distinguish between users in such cases. Furthermore, cookies can be copied from one browser to another with little difficulty, thus compromising security.
U.S. Pat. No. 5,708,780 to Levergood et al. describes a system for maintaining an HTTP session by altering the URL to include a session identifier. This session identifier may easily be lost when the user clicks on an absolute link. It also exposes internal binary data to the user in an unaesthetic way, and may easily be transferred from one user to another.
U.S. Pat. No. 5,784,565 to Lewine describes a method for creating a virtual HTTP session using a username and password. European Patent Application 812088 to lyengar describes a method for preserving state by modifying the links in an HTMI document. European Patent Applications 784279 and 807891 to Levine and Carter describe a stateless shopping cart for the Internet. The list of items already selected by the user is sent to the browser by the HTTP server with each HTTP response, and returned to the HTTP server by the browser with each HTTP request. The HTTP server does not have to retain this list from one HTTP request to the next.
There is therefore provided in accordance with a preferred embodiment of the present invention a method for session management over a stateless protocol. The method includes the steps of comparing a first plurality of identifiers contained in a first request with a second plurality of identifiers contained in a second request, and associating the second request with the first request when the comparison is successful.
Moreover, in accordance with a preferred embodiment of the present invention, the method further includes the step of calculating a total statistical significance for the plurality of identifiers. The step of associating is performed only when the total statistical significance is greater than a predetermined required significance level.
There is also provided in accordance with a further preferred embodiment of the present invention a method for session management over a stateless protocol The method includes the steps of receiving a request containing a plurality of identifiers and generating a hash of at least one of the plurality of identifiers. If the generated hash is incompatible with previously generated hashes, information is associated with the generated hash, and a response is sent based upon information associated with the generated hash. If the generated hash is compatible with a previously generated hash, a response is sent based upon information previously associated with the previously generated hash.
Moreover, in accordance with a preferred embodiment of the present invention, the method further includes the steps of associating a statistical significance value with each of the at least one identifiers, and calculating a total significance for the hash from all of the associated values. If the generated hash is incompatible with previously generated hashes, a user identification is obtained, and the user identification is associated with the generated hash. The steps of sending a response are performed only when the total statistical significance is greater than a predetermined required significance level, and the response is also based upon the user identification.
There is also provided in accordance with another preferred embodiment of the present invention a token for session management over a stateless protocol, the token formed by digitally hashing a plurality of identifiers contained in a request.
Moreover, in accordance with a preferred embodiment of the present invention, the token has a total significance calculated from a statistical significance associated with each of the plurality of identifiers.